package io.kubernetes.client.openapi.models;

import io.kubernetes.client.fluent.Nested;
import java.lang.String;
import java.lang.Deprecated;
import io.kubernetes.client.fluent.BaseFluent;
import java.lang.Boolean;
import java.lang.Integer;
import java.time.OffsetDateTime;
import java.lang.Object;

public class V1beta1EventFluentImpl<A extends io.kubernetes.client.openapi.models.V1beta1EventFluent<A>> extends io.kubernetes.client.fluent.BaseFluent<A> implements io.kubernetes.client.openapi.models.V1beta1EventFluent<A> {

    private java.lang.String action;
    private java.lang.String apiVersion;
    private java.lang.Integer deprecatedCount;
    private java.time.OffsetDateTime deprecatedFirstTimestamp;
    private java.time.OffsetDateTime deprecatedLastTimestamp;
    private io.kubernetes.client.openapi.models.V1EventSourceBuilder deprecatedSource;
    private java.time.OffsetDateTime eventTime;
    private java.lang.String kind;
    private io.kubernetes.client.openapi.models.V1ObjectMetaBuilder metadata;
    private java.lang.String note;
    private java.lang.String reason;
    private io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder regarding;
    private io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder related;
    private java.lang.String reportingController;
    private java.lang.String reportingInstance;
    private io.kubernetes.client.openapi.models.V1beta1EventSeriesBuilder series;
    private java.lang.String type;

    public V1beta1EventFluentImpl() {
    }

    public V1beta1EventFluentImpl(io.kubernetes.client.openapi.models.V1beta1Event instance) {
        this.withAction(instance.getAction());
        
        this.withApiVersion(instance.getApiVersion());
        
        this.withDeprecatedCount(instance.getDeprecatedCount());
        
        this.withDeprecatedFirstTimestamp(instance.getDeprecatedFirstTimestamp());
        
        this.withDeprecatedLastTimestamp(instance.getDeprecatedLastTimestamp());
        
        this.withDeprecatedSource(instance.getDeprecatedSource());
        
        this.withEventTime(instance.getEventTime());
        
        this.withKind(instance.getKind());
        
        this.withMetadata(instance.getMetadata());
        
        this.withNote(instance.getNote());
        
        this.withReason(instance.getReason());
        
        this.withRegarding(instance.getRegarding());
        
        this.withRelated(instance.getRelated());
        
        this.withReportingController(instance.getReportingController());
        
        this.withReportingInstance(instance.getReportingInstance());
        
        this.withSeries(instance.getSeries());
        
        this.withType(instance.getType());
    }

    public java.lang.String getAction() {
        return this.action;
    }

    public A withAction(java.lang.String action) {
        this.action=action; return (A) this;
    }

    public java.lang.Boolean hasAction() {
        return this.action != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withAction instead.
     */
        public A withNewAction(java.lang.String original) {
        return (A)withAction(new String(original));
    }

    public java.lang.String getApiVersion() {
        return this.apiVersion;
    }

    public A withApiVersion(java.lang.String apiVersion) {
        this.apiVersion=apiVersion; return (A) this;
    }

    public java.lang.Boolean hasApiVersion() {
        return this.apiVersion != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withApiVersion instead.
     */
        public A withNewApiVersion(java.lang.String original) {
        return (A)withApiVersion(new String(original));
    }

    public java.lang.Integer getDeprecatedCount() {
        return this.deprecatedCount;
    }

    public A withDeprecatedCount(java.lang.Integer deprecatedCount) {
        this.deprecatedCount=deprecatedCount; return (A) this;
    }

    public java.lang.Boolean hasDeprecatedCount() {
        return this.deprecatedCount != null;
    }

    public java.time.OffsetDateTime getDeprecatedFirstTimestamp() {
        return this.deprecatedFirstTimestamp;
    }

    public A withDeprecatedFirstTimestamp(java.time.OffsetDateTime deprecatedFirstTimestamp) {
        this.deprecatedFirstTimestamp=deprecatedFirstTimestamp; return (A) this;
    }

    public java.lang.Boolean hasDeprecatedFirstTimestamp() {
        return this.deprecatedFirstTimestamp != null;
    }

    public java.time.OffsetDateTime getDeprecatedLastTimestamp() {
        return this.deprecatedLastTimestamp;
    }

    public A withDeprecatedLastTimestamp(java.time.OffsetDateTime deprecatedLastTimestamp) {
        this.deprecatedLastTimestamp=deprecatedLastTimestamp; return (A) this;
    }

    public java.lang.Boolean hasDeprecatedLastTimestamp() {
        return this.deprecatedLastTimestamp != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildDeprecatedSource instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1EventSource getDeprecatedSource() {
        return this.deprecatedSource!=null?this.deprecatedSource.build():null;
    }

    public io.kubernetes.client.openapi.models.V1EventSource buildDeprecatedSource() {
        return this.deprecatedSource!=null?this.deprecatedSource.build():null;
    }

    public A withDeprecatedSource(io.kubernetes.client.openapi.models.V1EventSource deprecatedSource) {
        _visitables.get("deprecatedSource").remove(this.deprecatedSource);
        if (deprecatedSource!=null){ this.deprecatedSource= new io.kubernetes.client.openapi.models.V1EventSourceBuilder(deprecatedSource); _visitables.get("deprecatedSource").add(this.deprecatedSource);} return (A) this;
    }

    public java.lang.Boolean hasDeprecatedSource() {
        return this.deprecatedSource != null;
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.DeprecatedSourceNested<A> withNewDeprecatedSource() {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.DeprecatedSourceNestedImpl();
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.DeprecatedSourceNested<A> withNewDeprecatedSourceLike(io.kubernetes.client.openapi.models.V1EventSource item) {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.DeprecatedSourceNestedImpl(item);
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.DeprecatedSourceNested<A> editDeprecatedSource() {
        return withNewDeprecatedSourceLike(getDeprecatedSource());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.DeprecatedSourceNested<A> editOrNewDeprecatedSource() {
        return withNewDeprecatedSourceLike(getDeprecatedSource() != null ? getDeprecatedSource(): new io.kubernetes.client.openapi.models.V1EventSourceBuilder().build());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.DeprecatedSourceNested<A> editOrNewDeprecatedSourceLike(io.kubernetes.client.openapi.models.V1EventSource item) {
        return withNewDeprecatedSourceLike(getDeprecatedSource() != null ? getDeprecatedSource(): item);
    }

    public java.time.OffsetDateTime getEventTime() {
        return this.eventTime;
    }

    public A withEventTime(java.time.OffsetDateTime eventTime) {
        this.eventTime=eventTime; return (A) this;
    }

    public java.lang.Boolean hasEventTime() {
        return this.eventTime != null;
    }

    public java.lang.String getKind() {
        return this.kind;
    }

    public A withKind(java.lang.String kind) {
        this.kind=kind; return (A) this;
    }

    public java.lang.Boolean hasKind() {
        return this.kind != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withKind instead.
     */
        public A withNewKind(java.lang.String original) {
        return (A)withKind(new String(original));
    }

    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildMetadata instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1ObjectMeta getMetadata() {
        return this.metadata!=null?this.metadata.build():null;
    }

    public io.kubernetes.client.openapi.models.V1ObjectMeta buildMetadata() {
        return this.metadata!=null?this.metadata.build():null;
    }

    public A withMetadata(io.kubernetes.client.openapi.models.V1ObjectMeta metadata) {
        _visitables.get("metadata").remove(this.metadata);
        if (metadata!=null){ this.metadata= new io.kubernetes.client.openapi.models.V1ObjectMetaBuilder(metadata); _visitables.get("metadata").add(this.metadata);} return (A) this;
    }

    public java.lang.Boolean hasMetadata() {
        return this.metadata != null;
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.MetadataNested<A> withNewMetadata() {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.MetadataNestedImpl();
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.MetadataNested<A> withNewMetadataLike(io.kubernetes.client.openapi.models.V1ObjectMeta item) {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.MetadataNestedImpl(item);
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.MetadataNested<A> editMetadata() {
        return withNewMetadataLike(getMetadata());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.MetadataNested<A> editOrNewMetadata() {
        return withNewMetadataLike(getMetadata() != null ? getMetadata(): new io.kubernetes.client.openapi.models.V1ObjectMetaBuilder().build());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.MetadataNested<A> editOrNewMetadataLike(io.kubernetes.client.openapi.models.V1ObjectMeta item) {
        return withNewMetadataLike(getMetadata() != null ? getMetadata(): item);
    }

    public java.lang.String getNote() {
        return this.note;
    }

    public A withNote(java.lang.String note) {
        this.note=note; return (A) this;
    }

    public java.lang.Boolean hasNote() {
        return this.note != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withNote instead.
     */
        public A withNewNote(java.lang.String original) {
        return (A)withNote(new String(original));
    }

    public java.lang.String getReason() {
        return this.reason;
    }

    public A withReason(java.lang.String reason) {
        this.reason=reason; return (A) this;
    }

    public java.lang.Boolean hasReason() {
        return this.reason != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withReason instead.
     */
        public A withNewReason(java.lang.String original) {
        return (A)withReason(new String(original));
    }

    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildRegarding instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1ObjectReference getRegarding() {
        return this.regarding!=null?this.regarding.build():null;
    }

    public io.kubernetes.client.openapi.models.V1ObjectReference buildRegarding() {
        return this.regarding!=null?this.regarding.build():null;
    }

    public A withRegarding(io.kubernetes.client.openapi.models.V1ObjectReference regarding) {
        _visitables.get("regarding").remove(this.regarding);
        if (regarding!=null){ this.regarding= new io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder(regarding); _visitables.get("regarding").add(this.regarding);} return (A) this;
    }

    public java.lang.Boolean hasRegarding() {
        return this.regarding != null;
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RegardingNested<A> withNewRegarding() {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.RegardingNestedImpl();
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RegardingNested<A> withNewRegardingLike(io.kubernetes.client.openapi.models.V1ObjectReference item) {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.RegardingNestedImpl(item);
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RegardingNested<A> editRegarding() {
        return withNewRegardingLike(getRegarding());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RegardingNested<A> editOrNewRegarding() {
        return withNewRegardingLike(getRegarding() != null ? getRegarding(): new io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder().build());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RegardingNested<A> editOrNewRegardingLike(io.kubernetes.client.openapi.models.V1ObjectReference item) {
        return withNewRegardingLike(getRegarding() != null ? getRegarding(): item);
    }

    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildRelated instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1ObjectReference getRelated() {
        return this.related!=null?this.related.build():null;
    }

    public io.kubernetes.client.openapi.models.V1ObjectReference buildRelated() {
        return this.related!=null?this.related.build():null;
    }

    public A withRelated(io.kubernetes.client.openapi.models.V1ObjectReference related) {
        _visitables.get("related").remove(this.related);
        if (related!=null){ this.related= new io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder(related); _visitables.get("related").add(this.related);} return (A) this;
    }

    public java.lang.Boolean hasRelated() {
        return this.related != null;
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RelatedNested<A> withNewRelated() {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.RelatedNestedImpl();
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RelatedNested<A> withNewRelatedLike(io.kubernetes.client.openapi.models.V1ObjectReference item) {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.RelatedNestedImpl(item);
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RelatedNested<A> editRelated() {
        return withNewRelatedLike(getRelated());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RelatedNested<A> editOrNewRelated() {
        return withNewRelatedLike(getRelated() != null ? getRelated(): new io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder().build());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.RelatedNested<A> editOrNewRelatedLike(io.kubernetes.client.openapi.models.V1ObjectReference item) {
        return withNewRelatedLike(getRelated() != null ? getRelated(): item);
    }

    public java.lang.String getReportingController() {
        return this.reportingController;
    }

    public A withReportingController(java.lang.String reportingController) {
        this.reportingController=reportingController; return (A) this;
    }

    public java.lang.Boolean hasReportingController() {
        return this.reportingController != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withReportingController instead.
     */
        public A withNewReportingController(java.lang.String original) {
        return (A)withReportingController(new String(original));
    }

    public java.lang.String getReportingInstance() {
        return this.reportingInstance;
    }

    public A withReportingInstance(java.lang.String reportingInstance) {
        this.reportingInstance=reportingInstance; return (A) this;
    }

    public java.lang.Boolean hasReportingInstance() {
        return this.reportingInstance != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withReportingInstance instead.
     */
        public A withNewReportingInstance(java.lang.String original) {
        return (A)withReportingInstance(new String(original));
    }

    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildSeries instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1beta1EventSeries getSeries() {
        return this.series!=null?this.series.build():null;
    }

    public io.kubernetes.client.openapi.models.V1beta1EventSeries buildSeries() {
        return this.series!=null?this.series.build():null;
    }

    public A withSeries(io.kubernetes.client.openapi.models.V1beta1EventSeries series) {
        _visitables.get("series").remove(this.series);
        if (series!=null){ this.series= new io.kubernetes.client.openapi.models.V1beta1EventSeriesBuilder(series); _visitables.get("series").add(this.series);} return (A) this;
    }

    public java.lang.Boolean hasSeries() {
        return this.series != null;
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.SeriesNested<A> withNewSeries() {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.SeriesNestedImpl();
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.SeriesNested<A> withNewSeriesLike(io.kubernetes.client.openapi.models.V1beta1EventSeries item) {
        return new io.kubernetes.client.openapi.models.V1beta1EventFluentImpl.SeriesNestedImpl(item);
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.SeriesNested<A> editSeries() {
        return withNewSeriesLike(getSeries());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.SeriesNested<A> editOrNewSeries() {
        return withNewSeriesLike(getSeries() != null ? getSeries(): new io.kubernetes.client.openapi.models.V1beta1EventSeriesBuilder().build());
    }

    public io.kubernetes.client.openapi.models.V1beta1EventFluent.SeriesNested<A> editOrNewSeriesLike(io.kubernetes.client.openapi.models.V1beta1EventSeries item) {
        return withNewSeriesLike(getSeries() != null ? getSeries(): item);
    }

    public java.lang.String getType() {
        return this.type;
    }

    public A withType(java.lang.String type) {
        this.type=type; return (A) this;
    }

    public java.lang.Boolean hasType() {
        return this.type != null;
    }

    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withType instead.
     */
        public A withNewType(java.lang.String original) {
        return (A)withType(new String(original));
    }

    public boolean equals(java.lang.Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        V1beta1EventFluentImpl that = (V1beta1EventFluentImpl) o;
        if (action != null ? !action.equals(that.action) :that.action != null) return false;
        if (apiVersion != null ? !apiVersion.equals(that.apiVersion) :that.apiVersion != null) return false;
        if (deprecatedCount != null ? !deprecatedCount.equals(that.deprecatedCount) :that.deprecatedCount != null) return false;
        if (deprecatedFirstTimestamp != null ? !deprecatedFirstTimestamp.equals(that.deprecatedFirstTimestamp) :that.deprecatedFirstTimestamp != null) return false;
        if (deprecatedLastTimestamp != null ? !deprecatedLastTimestamp.equals(that.deprecatedLastTimestamp) :that.deprecatedLastTimestamp != null) return false;
        if (deprecatedSource != null ? !deprecatedSource.equals(that.deprecatedSource) :that.deprecatedSource != null) return false;
        if (eventTime != null ? !eventTime.equals(that.eventTime) :that.eventTime != null) return false;
        if (kind != null ? !kind.equals(that.kind) :that.kind != null) return false;
        if (metadata != null ? !metadata.equals(that.metadata) :that.metadata != null) return false;
        if (note != null ? !note.equals(that.note) :that.note != null) return false;
        if (reason != null ? !reason.equals(that.reason) :that.reason != null) return false;
        if (regarding != null ? !regarding.equals(that.regarding) :that.regarding != null) return false;
        if (related != null ? !related.equals(that.related) :that.related != null) return false;
        if (reportingController != null ? !reportingController.equals(that.reportingController) :that.reportingController != null) return false;
        if (reportingInstance != null ? !reportingInstance.equals(that.reportingInstance) :that.reportingInstance != null) return false;
        if (series != null ? !series.equals(that.series) :that.series != null) return false;
        if (type != null ? !type.equals(that.type) :that.type != null) return false;
        return true;
    }

    public int hashCode() {
        return java.util.Objects.hash(action,  apiVersion,  deprecatedCount,  deprecatedFirstTimestamp,  deprecatedLastTimestamp,  deprecatedSource,  eventTime,  kind,  metadata,  note,  reason,  regarding,  related,  reportingController,  reportingInstance,  series,  type,  super.hashCode());
    }

    public class DeprecatedSourceNestedImpl<N> extends io.kubernetes.client.openapi.models.V1EventSourceFluentImpl<io.kubernetes.client.openapi.models.V1beta1EventFluent.DeprecatedSourceNested<N>> implements io.kubernetes.client.openapi.models.V1beta1EventFluent.DeprecatedSourceNested<N>,io.kubernetes.client.fluent.Nested<N> {
        private final io.kubernetes.client.openapi.models.V1EventSourceBuilder builder;

            DeprecatedSourceNestedImpl(io.kubernetes.client.openapi.models.V1EventSource item) {
                this.builder = new io.kubernetes.client.openapi.models.V1EventSourceBuilder(this, item);
                        
            }

            DeprecatedSourceNestedImpl() {
                this.builder = new io.kubernetes.client.openapi.models.V1EventSourceBuilder(this);
                        
            }

            public N and() {
                return (N) V1beta1EventFluentImpl.this.withDeprecatedSource(builder.build());
            }

            public N endDeprecatedSource() {
                return and();
            }
    }


    public class MetadataNestedImpl<N> extends io.kubernetes.client.openapi.models.V1ObjectMetaFluentImpl<io.kubernetes.client.openapi.models.V1beta1EventFluent.MetadataNested<N>> implements io.kubernetes.client.openapi.models.V1beta1EventFluent.MetadataNested<N>,io.kubernetes.client.fluent.Nested<N> {
        private final io.kubernetes.client.openapi.models.V1ObjectMetaBuilder builder;

            MetadataNestedImpl(io.kubernetes.client.openapi.models.V1ObjectMeta item) {
                this.builder = new io.kubernetes.client.openapi.models.V1ObjectMetaBuilder(this, item);
                        
            }

            MetadataNestedImpl() {
                this.builder = new io.kubernetes.client.openapi.models.V1ObjectMetaBuilder(this);
                        
            }

            public N and() {
                return (N) V1beta1EventFluentImpl.this.withMetadata(builder.build());
            }

            public N endMetadata() {
                return and();
            }
    }


    public class RegardingNestedImpl<N> extends io.kubernetes.client.openapi.models.V1ObjectReferenceFluentImpl<io.kubernetes.client.openapi.models.V1beta1EventFluent.RegardingNested<N>> implements io.kubernetes.client.openapi.models.V1beta1EventFluent.RegardingNested<N>,io.kubernetes.client.fluent.Nested<N> {
        private final io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder builder;

            RegardingNestedImpl(io.kubernetes.client.openapi.models.V1ObjectReference item) {
                this.builder = new io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder(this, item);
                        
            }

            RegardingNestedImpl() {
                this.builder = new io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder(this);
                        
            }

            public N and() {
                return (N) V1beta1EventFluentImpl.this.withRegarding(builder.build());
            }

            public N endRegarding() {
                return and();
            }
    }


    public class RelatedNestedImpl<N> extends io.kubernetes.client.openapi.models.V1ObjectReferenceFluentImpl<io.kubernetes.client.openapi.models.V1beta1EventFluent.RelatedNested<N>> implements io.kubernetes.client.openapi.models.V1beta1EventFluent.RelatedNested<N>,io.kubernetes.client.fluent.Nested<N> {
        private final io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder builder;

            RelatedNestedImpl(io.kubernetes.client.openapi.models.V1ObjectReference item) {
                this.builder = new io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder(this, item);
                        
            }

            RelatedNestedImpl() {
                this.builder = new io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder(this);
                        
            }

            public N and() {
                return (N) V1beta1EventFluentImpl.this.withRelated(builder.build());
            }

            public N endRelated() {
                return and();
            }
    }


    public class SeriesNestedImpl<N> extends io.kubernetes.client.openapi.models.V1beta1EventSeriesFluentImpl<io.kubernetes.client.openapi.models.V1beta1EventFluent.SeriesNested<N>> implements io.kubernetes.client.openapi.models.V1beta1EventFluent.SeriesNested<N>,io.kubernetes.client.fluent.Nested<N> {
        private final io.kubernetes.client.openapi.models.V1beta1EventSeriesBuilder builder;

            SeriesNestedImpl(io.kubernetes.client.openapi.models.V1beta1EventSeries item) {
                this.builder = new io.kubernetes.client.openapi.models.V1beta1EventSeriesBuilder(this, item);
                        
            }

            SeriesNestedImpl() {
                this.builder = new io.kubernetes.client.openapi.models.V1beta1EventSeriesBuilder(this);
                        
            }

            public N and() {
                return (N) V1beta1EventFluentImpl.this.withSeries(builder.build());
            }

            public N endSeries() {
                return and();
            }
    }


}
